Skip to content

v2.4.0#22

Merged
hkmt-mmy merged 25 commits into
mainfrom
develop
Jul 3, 2026
Merged

v2.4.0#22
hkmt-mmy merged 25 commits into
mainfrom
develop

Conversation

@hkmt-mmy

@hkmt-mmy hkmt-mmy commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator
  • New Features
    • Add referenceSampleRate to CueSheet: sample positions are automatically scaled at runtime when the clip's actual decoding frequency differs from the authored rate, preventing playback drift on platforms that resample audio (e.g. when Audio Import Settings do not use Preserve Sample Rate); the editor warns when referenceSampleRate is unset (Inspector, validation window, and build) and shows a one-time migration dialog on startup to help set it on existing CueSheets
    • Seamless BGM loop and reliable scheduled playback on WebGL: Unity's AudioSource.SetScheduledEndTime does not work on WebGL even in versions where the reported bug is marked as fixed, and Unity exposes no API to correlate a C# AudioSource with its underlying WebAudio channel. AudioConductor intercepts Unity's internal channel-creation hook to establish the binding and manages loop points and scheduled stops directly via WebAudio. DecompressOnLoad uses native WebAudio loop; CompressedInMemory and Streaming detect their backend at runtime and apply native loop or a crossover strategy accordingly. Pause/resume on app focus loss and system interruptions is also handled under this layer.
  • Fix Issues
    • Fix out-of-range sample position assignment when setting up a cue with loop points

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR releases AudioConductor v2.4.0, adding a CueSheet-level authored sample-rate (referenceSampleRate) to prevent sample-index drift when clips decode at a different frequency, and improving WebGL behavior by auto-pausing/resuming playback on tab visibility/focus changes (plus fixing an edge case where Pause/Resume occurs immediately after Play).

Changes:

  • Add CueSheet.referenceSampleRate and runtime sample-index conversion in AudioClipPlayer.Setup(...).
  • Implement WebGL system pause/resume propagation (JS visibility listener → ConductorBehaviourConductorAudioClipPlayer).
  • Add editor UI + migration/validation/docs + tests covering reference sample rate and pause/resume edge cases.

Reviewed changes

Copilot reviewed 28 out of 39 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Packages/AudioConductor/Tests/Editor/Core/Tools/CueSheetEditor/Models/CueSheetParameterPaneModelTests.cs Adds tests for applying/validating referenceSampleRate from clip frequencies (with cleanup of created AudioClips).
Packages/AudioConductor/Tests/Editor/Core/AudioClipPlayerWebGLTests.cs.meta Unity meta for new WebGL-specific test file.
Packages/AudioConductor/Tests/Editor/Core/AudioClipPlayerWebGLTests.cs Adds WebGL-only tests for PauseBySystem/ResumeBySystem behaviors and scheduling adjustments.
Packages/AudioConductor/Tests/Editor/Core/AudioClipPlayerTests.cs Extends tests for Pause/Resume edge cases and reference-sample-rate scaling during Setup.
Packages/AudioConductor/Runtime/Plugins/WebGL/AudioConductorWebGL.jslib.meta Unity plugin importer meta for WebGL JS library.
Packages/AudioConductor/Runtime/Plugins/WebGL/AudioConductorWebGL.jslib Adds JS visibilitychange hook + document.hidden query functions for WebGL builds.
Packages/AudioConductor/Runtime/Plugins/WebGL.meta Folder meta for Runtime/Plugins/WebGL.
Packages/AudioConductor/Runtime/Plugins.meta Folder meta for Runtime/Plugins.
Packages/AudioConductor/Runtime/Core/Models/CueSheet.cs Introduces referenceSampleRate field and documentation in the runtime CueSheet model.
Packages/AudioConductor/Runtime/Core/ConductorBehaviour.WebGL.cs.meta Unity meta for WebGL-specific ConductorBehaviour partial.
Packages/AudioConductor/Runtime/Core/ConductorBehaviour.WebGL.cs Adds WebGL runtime system-pause notification integration (visibility/focus handling).
Packages/AudioConductor/Runtime/Core/ConductorBehaviour.cs Makes ConductorBehaviour partial to support WebGL-specific partial implementation.
Packages/AudioConductor/Runtime/Core/Conductor.WebGL.cs.meta Unity meta for WebGL-specific Conductor partial.
Packages/AudioConductor/Runtime/Core/Conductor.WebGL.cs Adds WebGL-only OnSystemPause propagation to players.
Packages/AudioConductor/Runtime/Core/Conductor.Playback.cs Passes cueSheet.referenceSampleRate into AudioClipPlayer.Setup(...) for scaling.
Packages/AudioConductor/Runtime/Core/AudioConductorWebGLBroadcaster.cs.meta Unity meta for WebGL broadcaster.
Packages/AudioConductor/Runtime/Core/AudioConductorWebGLBroadcaster.cs Implements a single JS visibility listener shared across ConductorBehaviour instances.
Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs.meta Unity meta for WebGL-specific AudioClipPlayer partial.
Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs Adds system pause/resume logic and scheduling behavior for WebGL.
Packages/AudioConductor/Runtime/Core/AudioClipPlayer.cs Adds sample conversion in Setup, Play-schedule delay constant, and fixes Pause/Resume “scheduled-but-not-playing yet” edge cases.
Packages/AudioConductor/package.json Bumps package version to 2.4.0.
Packages/AudioConductor/Editor/PackageResources/Uxml/CueSheetParameterPane.uxml Adds Reference Sample Rate read-only field, warning helpbox, and Apply button to CueSheet parameter pane.
Packages/AudioConductor/Editor/Localization/JapaneseTranslations.cs Adds JP translations for reference sample rate UI and migration strings; formats existing long entry.
Packages/AudioConductor/Editor/Localization/EnglishTranslations.cs Adds EN translations for reference sample rate UI and migration strings; formats existing long entry.
Packages/AudioConductor/Editor/Core/Tools/Validation/Rules/ReferenceSampleRateUnsetRule.cs.meta Unity meta for new validation rule.
Packages/AudioConductor/Editor/Core/Tools/Validation/Rules/ReferenceSampleRateUnsetRule.cs Adds validation warning when referenceSampleRate is unset but clips exist.
Packages/AudioConductor/Editor/Core/Tools/Shared/ReferenceSampleRateBuildPreprocessor.cs.meta Unity meta for new build preprocessor.
Packages/AudioConductor/Editor/Core/Tools/Shared/ReferenceSampleRateBuildPreprocessor.cs Adds build-time warnings when CueSheets with clips have unset referenceSampleRate.
Packages/AudioConductor/Editor/Core/Tools/Shared/CueSheetAssetImportChecker.cs Adds editor-time migration dialog to apply reference sample rates from clip frequencies.
Packages/AudioConductor/Editor/Core/Tools/CueSheetEditor/Views/CueSheetParameterPaneView.cs Wires new UI controls (read-only display, warning visibility, apply action).
Packages/AudioConductor/Editor/Core/Tools/CueSheetEditor/Presenters/CueSheetParameterPanePresenter.cs Binds ReferenceSampleRateObservable to view and wires Apply button to model action.
Packages/AudioConductor/Editor/Core/Tools/CueSheetEditor/Models/ObservableCueSheet.cs Adds observable property wrapper for referenceSampleRate.
Packages/AudioConductor/Editor/Core/Tools/CueSheetEditor/Models/Interfaces/ICueSheetParameterPaneModel.cs Extends interface with reference sample rate observable + apply capability.
Packages/AudioConductor/Editor/Core/Tools/CueSheetEditor/Models/CueSheetParameterPaneModel.cs Implements apply logic with undo/redo + frequency consistency checks.
Packages/AudioConductor/CHANGELOG.md Adds v2.4.0 changelog entry matching PR description.
docs/README.md Documents reference sample rate concept, migration dialog, UI, and validation warning.
docs/README_JA.md Japanese documentation for reference sample rate concept, migration dialog, UI, and validation warning.
Files not reviewed (9)
  • Packages/AudioConductor/Editor/Core/Tools/Shared/ReferenceSampleRateBuildPreprocessor.cs.meta: Language not supported
  • Packages/AudioConductor/Editor/Core/Tools/Validation/Rules/ReferenceSampleRateUnsetRule.cs.meta: Language not supported
  • Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs.meta: Language not supported
  • Packages/AudioConductor/Runtime/Core/AudioConductorWebGLBroadcaster.cs.meta: Language not supported
  • Packages/AudioConductor/Runtime/Core/Conductor.WebGL.cs.meta: Language not supported
  • Packages/AudioConductor/Runtime/Core/ConductorBehaviour.WebGL.cs.meta: Language not supported
  • Packages/AudioConductor/Runtime/Plugins.meta: Language not supported
  • Packages/AudioConductor/Runtime/Plugins/WebGL.meta: Language not supported
  • Packages/AudioConductor/Runtime/Plugins/WebGL/AudioConductorWebGL.jslib.meta: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 43 out of 62 changed files in this pull request and generated 4 comments.

Files not reviewed (14)
  • Assets/Development.meta: Generated file
  • Assets/Development/WebGLLoopTest.meta: Generated file
  • Assets/Development/WebGLLoopTest/AudioConductor.Development.asmdef.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTest.cs.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTestScene.unity.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets/BgmLoopTestCueSheet.asset.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_compressed.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_decompress.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_streaming.wav.meta: Generated file
  • Assets/Editor.meta: Generated file
  • Assets/Editor/WebGLBuildScript.cs.meta: Generated file

Comment thread Packages/AudioConductor/Runtime/Plugins/WebGL/AudioConductorWebGL.jslib Outdated
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.cs Outdated
Comment thread Assets/Editor/WebGLBuildScript.cs Outdated
@hkmt-mmy
hkmt-mmy requested a review from Copilot June 26, 2026 08:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 68 changed files in this pull request and generated 1 comment.

Files not reviewed (14)
  • Assets/Development.meta: Generated file
  • Assets/Development/WebGLLoopTest.meta: Generated file
  • Assets/Development/WebGLLoopTest/AudioConductor.Development.asmdef.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTest.cs.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTestScene.unity.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets/BgmLoopTestCueSheet.asset.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_compressed.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_decompress.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_streaming.wav.meta: Generated file
  • Assets/Editor.meta: Generated file
  • Assets/Editor/WebGLBuildScript.cs.meta: Generated file

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 68 changed files in this pull request and generated 7 comments.

Files not reviewed (14)
  • Assets/Development.meta: Generated file
  • Assets/Development/WebGLLoopTest.meta: Generated file
  • Assets/Development/WebGLLoopTest/AudioConductor.Development.asmdef.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTest.cs.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTestScene.unity.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets/BgmLoopTestCueSheet.asset.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_compressed.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_decompress.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_streaming.wav.meta: Generated file
  • Assets/Editor.meta: Generated file
  • Assets/Editor/WebGLBuildScript.cs.meta: Generated file

Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs
Comment thread Packages/AudioConductor/Runtime/Core/AudioClipPlayer.WebGL.cs

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 68 changed files in this pull request and generated 1 comment.

Files not reviewed (14)
  • Assets/Development.meta: Generated file
  • Assets/Development/WebGLLoopTest.meta: Generated file
  • Assets/Development/WebGLLoopTest/AudioConductor.Development.asmdef.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTest.cs.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTestScene.unity.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets/BgmLoopTestCueSheet.asset.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_compressed.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_decompress.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_streaming.wav.meta: Generated file
  • Assets/Editor.meta: Generated file
  • Assets/Editor/WebGLBuildScript.cs.meta: Generated file

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 68 changed files in this pull request and generated 1 comment.

Files not reviewed (14)
  • Assets/Development.meta: Generated file
  • Assets/Development/WebGLLoopTest.meta: Generated file
  • Assets/Development/WebGLLoopTest/AudioConductor.Development.asmdef.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTest.cs.meta: Generated file
  • Assets/Development/WebGLLoopTest/BgmLoopTestScene.unity.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets.meta: Generated file
  • Assets/Development/WebGLLoopTest/Resources/CueSheets/BgmLoopTestCueSheet.asset.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_compressed.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_decompress.wav.meta: Generated file
  • Assets/Development/WebGLLoopTest/Sound/sample_bgm_loop_streaming.wav.meta: Generated file
  • Assets/Editor.meta: Generated file
  • Assets/Editor/WebGLBuildScript.cs.meta: Generated file

@hkmt-mmy
hkmt-mmy requested a review from qua-iy June 29, 2026 06:41
@hkmt-mmy
hkmt-mmy marked this pull request as ready for review June 29, 2026 06:41
@hkmt-mmy
hkmt-mmy merged commit 8b9173d into main Jul 3, 2026
2 checks passed
@hkmt-mmy
hkmt-mmy deleted the develop branch July 3, 2026 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants